(1.3.1.2) "You Are not Gonna Need It" YAGNI principle
There is also the word YAGNI (You Are not Gonna Need It) principle.
The YAGNI principle is one of the principles proposed in Extreme Programming, one of the software development methods. It says, "Do not add functions until needed." Ron Jeffries, one of the proponents, argues that functions should be implemented after it is really needed. (*17)
The reasons are as follows.
Your thoughts have gone off track. You’re thinking about what the class might be, rather than what it must be. You were on a mission when you started building that class. Keep on that mission rather than let yourself be distracted for even a moment.
Your time is precious. Hone your sense of progress to focus on the real task, not just on banging out code.
You might not need it after all. If that happens, the time you spend implementing the method will be wasted; the time everyone else spends reading it will be wasted; the space it takes up will be wasted.
The same idea applys to studying. Your time is precious. If you learn something and it does not become necessary, it is a waste of time. Do not say "this may be necessary for the future."
When I wrote "Learning methods of engineer", I used the phrase "to learn from the necessary things" rather than "to learn from what you want to know." However, this was a misleading expression. The interpretation of the word "necessary" differs depending on the reader. "Necessity" has two interpretations: "There is something I want to do, and to learn X is necessary to do that" and, "X is said to be necessary for the future." I supposed the former, but there seem to be many people take it as the latter. Let's remember. Maintaining motivation is essential for turning the cycle of learning. Moreover, keeping motivation is difficult if the goal is far. So "Is it necessary in the future" is a near goal or a far goal? It is a far goal. Do not aim at such a far goal. Aim at a near goal such as what you want to do now. It is a trick to enhance your motivation.
en.icon
---